OS/360 and successors

Operating System/360
Company / developer IBM
OS family OS/360 and successors
Latest stable release 21.8
Available language(s) Algol 60, Assembler (E), Assembler (F), CLIST, COBOL, FORTRAN, PL/I, RPG
Supported platforms S/360, S/370
Kernel type N/A
License none
Succeeded by OS/VS1, OS/VS2 (SVS), OS/VS2 (MVS), MVS/SE, MVS/SP Version 1, MVS/XA, MVS/ESA, OS/390, z/OS

OS/360, officially known as IBM System/360 Operating System,[1][2] was a batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was heavily influenced by the earlier IBSYS/IBJOB and Input/Output Control System (IOCS) packages. It was among the earliest operating systems to make direct access storage devices a prerequisite for their operation.

IBM announced three different levels of OS/360, generated from the same tapes and sharing most of their code. IBM eventually renamed these options and made some significant design changes:

Users often coined nicknames, e.g., Big OS, OS/MFT, but none of these names had any official recognition by IBM.

The other major operating system for System/360 hardware was DOS/360.

History of IBM mainframe
operating systems

On early mainframe computers:

On S/360 and successors:

  • OS/360 and successors 1966

OS/360 is in the public domain and can be downloaded freely. As well as being run on actual System/360 hardware, it can be executed on the free Hercules emulator, which runs under most UNIX and Unix-like systems including GNU/Linux, Solaris, and Mac OS X, as well as Windows. There are OS/360 turnkey CD's that provide pregenerated OS/360 21.8 systems ready to run under Hercules.

Contents

Origin

IBM originally intended that System/360 should have only one batch-oriented[NB 2] operating system, OS/360.[3] It also intended to supply a separate timesharing operating system, TSS/360. There are at least two accounts of why IBM eventually decided to produce other, simpler batch-oriented operating systems: because it found that OS/360 would not fit into the limited memory available on the smaller System/360 models;[4] or because it realized that the development of OS/360 would take much longer than expected. IBM introduced a series of stop-gaps to prevent System/360 hardware sales from collapsing—first BOS/360 (Basic Operating System, for the smallest machines with 8K byte memories), then TOS/360 (Tape Operating System, for machines with at least 16K byte memories and only tape drives), and finally DOS/360 (Disk Operating System), which became a mainstream operating system and is the ancestor of today's widely used z/VSE.[4][5]

IBM released three variants of OS/360: PCP (Primary Control Program), a short-lived stop-gap which could run only one job at a time, in 1966; MFT (Multiprogramming with Fixed number of Tasks) for the mid-range machines, and MVT (Multiprogramming with Variable number of Tasks) for the top end.[6] MFT and MVT were used until at least 1981,[7] a good five years after their successors had been launched.[8] It is unclear whether the division between MFT and MVT arose because MVT required too much processing power to be usable on mid-range machines or because IBM needed to release a multiprogramming version of OS (MFT) as soon as possible. Initially IBM maintained that MFT and MVT were simply "two configurations of the [OS/360] control program", although later IBM described them as "separate versions of OS/360".[2][3]

IBM originally wrote OS/360 in assembly language. Later on, IBM wrote some OS/360 code in a new language, Basic Systems Language (BSL),[9] derived from PL/I. A large amount of the TSO code in Release 20 was written in BSL.

TSS/360 was so late and unreliable that IBM canceled it, although IBM later supplied three releases of the TSS/370 PRPQ. By this time CP-67 was running well enough for IBM to offer it without warranty as a timesharing facility for a few large customers.[10]

OS/360 variants

These three options offered such similar facilities that porting applications between them usually required minimal effort, and the same versions of IBM "Program Products" (application and utility software) ran on both. The text below mostly treats PCP, MFT and MVT as simply new names for the original SSS, MSS and MPS, although there were some design changes. Also, the text does not distinguish between M65MP and MVT.

PCP

Primary Control Program (PCP) was intended for users with small memories. It was similar to MFT[NB 3] with one partition.

Also referred to as SYS=MIN in macro expansions that were system-dependent.

MFT

MFT was intended to serve as a stop-gap until Multiprogramming with a Variable number of Tasks (MVT), the intended "target" configuration of OS/360, became available in 1967. Early versions of MVT had many problems, so the simpler MFT continued to be used for many years. After introducing new System/370 machines with virtual memory, in 1972 MFT was developed into OS/VS1, the last system of this particular line.

The first version of MFT[11] shared much of the code and architecture with PCP, and was limited to four partitions. It was very cumbersome to run multiple partitions. Many installations used Houston Automatic Spooling Priority (HASP) to mitigate the complexity.

MFT Version II (MFT-II)[12] shared much more of the Control Program and Scheduler code with MVT, and was much more flexible to run. The maximum number of partitions increased to 52.

Later modifications of MFT-II added sub-tasking, so that the fixed number of tasks was no longer fixed, although the number of partitions did remain a limitation.

Although officially PCP, MFT and MVT were not a separate operating systems from OS/360,[2] those were only an install-time configuration options—in today's words, a three different variants of OS kernel—because of quite different behaviour and memory requirements, users commonly considered them de facto separate operating systems, and referred to them as early OS/360, OS/MFT, OS/MVT, respectively. MFT differed from MVT mainly in the way in which it managed memory: when installing MFT, customers would specify a fixed number of "partitions", areas of memory with fixed boundaries, in which application programs could be run simultaneously.[3]

Experience indicated that it was not advisable to install MFT on systems with less than 256 KB of memory, which in the 1960s was quite a large amount.[13]

Also referred to as SYS=INT in macro expansions that were system-dependent.

MVT

Multiprogramming with a Variable number of Tasks (MVT)[14] was considerably larger and more complex than MFT and therefore was used on the most powerful System/360 CPUs. It treated all memory not used by the operating system as a single pool from which contiguous "regions" could be allocated as required by an indefinite number of simultaneous application programs. This scheme was more flexible than MFT's and in principle used memory more efficiently, but was liable to fragmentation - after a while one could find that, although there was enough spare memory in total to run a program, it was divided into separate chunks none of which was large enough.[3]

In 1971 the Time Sharing Option (TSO) for use with MVT was added as part of release 20.1. TSO became widely used for program development because it provided an editor, the ability to submit batch jobs, be notified of their completion, and view the results without waiting for printed reports, and debuggers for some of the programming languages used on System/360. TSO in OS/360[NB 4] communicated with terminals by using Telecommunications Access Method (TCAM). TCAM's name suggests that IBM hoped it would become the standard access method for data communications, but in fact TCAM in OS/VS2 was used almost entirely for TSO and was largely superseded by Virtual telecommunications access method (VTAM) in the mid to late 1970s.

Also referred to as SYS=VMS in invocations of some macros that were system-dependent.

M65MP

Model 65 Multiprocessing (M65MP) is a variant of MVT. It runs on a 360/65 in Multisystem mode[15] M65MP traps use of the Set System Mask (SSM) instruction to serialize disabled code between the two CPU's. For the most part an M65MP system has the same behavior and interfaces as any other MVT system.

Also referred to as SYS=VMS in invocations of some macros that were system-dependent, as M65MP is a simple and straightforward variation of MVT.

Shared features

PCP, MFT and MVT provided very similar facilities from the point of view of application programs:

System/370 and virtual memory operating systems

When System/370 was announced in 1970 it offered essentially the same facilities as System/360 but with about 4 times the processor speeds of similarly-priced System/360 CPUs.[16] Then in 1972 IBM announced "System/370 Advanced Functions", of which the main item was that future sales of System/370 would include virtual memory capability and this could also be retro-fitted to existing System/370 CPUs. Hence IBM also committed to delivering enhanced operating systems which could support the use of virtual memory.[17][18]

OS/360

IBM provided an OS/360 SYSGEN option for S/370 support, which did not support DAT but did

OS/VS1

OS/VS1 was the successor to MFT, and offered similar facilities with several additions, e.g., RES, virtual memory. VSAM (see below) was initially available as an independent component release (ICR) and later integrated into the OS/VS1 base.[3] IBM released fairly minor enhancements of OS/VS1 until 1983, and in 1984 announced that there would be no more. AIX/370, AIX/ESA, DPCX, DPPX, OS/VS1 and TSS/370 are the only System/370 operating systems that do not have modern descendants.

OS/VS2 SVS and MVS

OS/VS2 release 1 was just MVT plus virtual memory and VSAM (see below).[3] This version was eventually renamed OS/VS2 SVS, for Single Virtual Storage, when OS/VS2 Release 2, also known as MVS, for Multiple Virtual Storage, was introduced. SVS was intended as a stepping stone from MVT to MVS, and is only of historical interest today.

In 1974 IBM released what it described as OS/VS2 Release 2 but which was really a new operating system that was upwards-compatible with OS/VS2 Release 1. The Supervisor of the new system had been largely rewritten in a new dialect of BSL, PL/S;[19][20] BSL and PL/S were dialects of PL/I with extensions designed to transcribe Assembly language code, including privileged instructions needed to control the computer as a whole.

MVS address spaces - global view
MVS (shared part of all address spaces)
App 1 App 2 App 3
Shared virtual area (controlled by MVS)
One application's view
MVS
App 1
Shared virtual area

The new version's most noticeable feature was that it supported multiple virtual address spaces - different applications thought they were using the same range of virtual addresses, but the new system's virtual memory facilities mapped these to different ranges of real memory addresses. Each application's address space consisted of 3 areas: operating system (one instance shared by all jobs); an application area which was unique for each application; shared virtual area which was used for various purposes including inter-job communication. IBM promised that the application areas would always be at least 8MB. This approach eliminated the risk of memory fragmentation that was present in MVT and SVS, and improved the system's internal security.[3] The new system rapidly became known as "MVS" (Multiple Virtual Storages), the original OS/VS2 became known as "SVS" (Single Virtual Storage) and IBM itself accepted this terminology and labelled MVS's successors "MVS/xxx".[21]

MVS introduced a new approach to workload management, allowing users to define performance targets for high-priority batch jobs. This enabled users to give their systems more work than before without affecting the performance of the highest-priority jobs.[22]

MVS was IBM's first mainstream operating system on the System/370[NB 6] to support what IBM called "tightly-coupled multiprocessing", in which 2 (later up to 8) CPUs shared concurrent access to the same memory (and copy of the operating system) and peripherals, providing greater processing power and a degree of graceful degradation if one CPU failed.

Initially MVS was supplied with a job queue manager called JES2 (Job Entry Subsystem 2), which was descended from HASP (Houston Automated Spooling Program) and also supported Remote Job Entry from workstations located elsewhere. JES2 could only manage jobs for one CPU (which might be a tightly-coupled multiprocessor system). In 1976 IBM provided another option, JES3 (Job Entry Subsystem 3), a descendant of ASP (Attached Support Processor), which allowed one CPU to manage a single job queue feeding work to several physically distinct CPUs, and therefore allowed one operator's console to manage the work of all those CPUs.[23] Note: JES1 was the job queue manager for OS/VS1 (see above).

VSAM

IBM hoped that Virtual storage access method (VSAM) would replace its earlier sequential, indexed and direct access methods as it provided improved versions of these:[24][25]

These VSAM formats became the basis of IBM's database management systems, IMS/VS and DB2 - usually ESDS for the actual data storage and KSDS for indexes.

VSAM also provides a catalog facility which enables applications to access files by name, without needing to know which disk drive(s) they are on. VSAM datasets must be defined in a VSAM catalog before they are used, and non-VSAM datasets can also be listed in a VSAM catalog. The MVS Master Catalog must be a VSAM catalog.[25]

SNA

In 1974 IBM announced Systems Network Architecture, which was meant to reduce the cost of running large networks of terminals, mainly by using communications lines much more efficiently. This was only available for users of IBM's virtual memory operating systems, since its mainframe software component, VTAM was only available with these operating systems.

Later MVS versions and enhancements

In 1977 IBM announced MVS/System Extensions, a "program product" (i.e. it cost extra money) which improved MVS performance.[27]

Descendants of MVS are still used on the latest descendants of System/360, System/390 and zSeries; it was renamed to OS/390 for System/390, and the 64-bit version for the zSeries was named z/OS.

Timeline

These data are taken from IBM 360 Operating Systems Release History, System/370 Market Chronology of Products & Services, "z/OS, z/OS.e, and OS/390 marketing and service announce, availability, and withdrawal dates" http://www-03.ibm.com/systems/z/os/zos/support/zos_eos_dates.html  and IBM announcement letters.

Order No. Announce Ship Drop
Support
Rel # Name
360S 64-04 Operating System/360
64-04 1965-11 1 Operating System/360 prerelease
Single Sequential Scheduler
64-04 66-11 OS/360 Multiple Sequential Scheduler
360S 1965-12 19660331 1 Operating System/360
360S 1966-06 2 Operating System/360
360S 19660818 1966-08 4/5 Operating System/360
360S 19660429 1966-10 6 Operating System/360
MFT
360S 19661207 8 Operating System/360
360S 1967-02 9.5 Operating System/360
360S 1967-05 11 Operating System/360
360S 19670808 12 Operating System/360
MVT?
360S 1967-08 13 Operating System/360
MVT
360S 1968-01 14 Operating System/360
360S 19680830 15/16 Operating System/360
MFT-II, VTOC positioning
360S 1969-03 17 Operating System/360
360S 1969-07 1969-09 18 Operating System/360
SMF for MVT
360S 1969-10 18.6 Operating System/360
360S 1970-03 19 Operating System/360
360S 19700601 19700805 19.1 Operating System/360
SMF for MFT, MFT Attach, 1285/87/88 support
360S 19700805 19.6 Operating System/360
360S 1970-09 20 Operating System/360<TSO>
360S 1971-02 20.1 Operating System/360
360S 20.6 Operating System/360
360S 21 Operating System/360
360S 21.6 Operating System/360
360S 21.7 Operating System/360
360S 1972-08 21.8 Operating System/360
5741 72-08 73-?? 1 Operating System/Virtual Storage 1 (OS/VS1)
5742 72-08 72-?? 1 Operating System/Virtual Storage 2 (OS/VS2) (Single Virtual Storage) (SVS)
5752-VS2 72-08 74-?? 2 Operating System/Virtual Storage 2 (OS/VS2) (Multiple Virtual address Spaces) (MVS) with Job Entry Subsystem 2 (JES2)
5752-VS2 72+?? 75-10 2 Operating System/Virtual Storage 2 (OS/VS2) MVS with Job Entry Subsystem 3 (JES3)
5740-XE1 77-03 78-03 1 MVS/System Extensions (MVS/SE)
5740-XE1 79-03 79-08 2 MVS/System Extensions (MVS/SE2)
5740-XYS 80-06 80-12 1 MVS/System Product Version 1 JES2 (MVS/SP 1.1)
5740-XYN 80-06 80-12 1 MVS/System Product Version 1 JES3 (MVS/SP 1.1)
5740-XYS 80-06 81-06 2 MVS/System Product Version 1 JES2 (MVS/SP 1.2)
5740-XYN 80-06 81-06 2 MVS/System Product Version 1 JES3 (MVS/SP 1.2)
5740-XYS 80-11 81-10 3 MVS/System Product Version 1 JES2 (MVS/SP 1.3)
5740-XYN 80-11 81-10 3 MVS/System Product Version 1 JES3 (MVS/SP 1.3)
5740-XC6 81-10 83-03 1 MVS/System Product - JES2 Version 2 (MVS/Extended Architecture) (MVS/XA)
5740-XC6 81-10 83-03 1 MVS/System Product - JES3 Version 2 (MVS/Extended Architecture) (MVS/XA)
5685-001 88-02 88-07 1 MVS/System Product - JES2 Version 3 (MVS/Enterprise System Architecture) (MVS/ESA)
5685-002 88-02 88-07 1 MVS/System Product - JES3 Version 3 (MVS/Enterprise System Architecture) (MVS/ESA)
5685-047 1990/09/05 1990/10/26 1994/03/31 1 MVS/ESA SP - JES2 Version 4
5685-047 1990/09/05 1992/12/31 1999/06/30 2 MVS/ESA SP - JES2 Version 4
5685-047 1992/06/18 1993/03/26 1999/06/30 3 MVS/ESA SP - JES2 Version 4
5685-048 90-09 90-10 June 30, 1999 1 MVS/ESA SP - JES3 Version 4
5655-068 1994/04/05 1994/06/24 2001/01/31 1 MVS/ESA SP - JES2 Version 5
5655-068 1994/09/13
295-072
1995/06/30 2001/03/31 2 MVS/ESA SP - JES2 Version 5
5655-069 1994/09/13 1995/29/13 2001/03/31 2.1 MVS/ESA SP - JES3 Version 5
5655-069 1995/02/28 295-072 1995/09/29 20010331 (20010331) 999-387 2.2 MVS/ESA SP - JES3 Version 5
5645-001 1996/02/20 1996/03/29 296-018 2001/01/31 1 OS/390 Version 1
5645-001 1996/02/20 296-018 1996/09/27 2001/01/31 2 OS/390 Version 1
5645-001 1996/09/10 19970311 297-040 2001/03/31 3 OS/390 Version 1
5647-A01 19970311 297-040 1997/09/26 297-355 2001/03/31 4 OS/390 Version 2
5647-A01 1997/09/09 297-355 1998/03/27 297-355 2001/03/31 298-049 5 OS/390 Version 2
5647-A01 1998/02/24 298-049 1998/09/25 298-278 2002/03/31 6 OS/390 Version 2
5647-A01 1998/08/18 298-278 1999/03/26 299-042 2002/03/31 7 OS/390 Version 2
5647-A01 1999/02/22 299-042 1999/09/24 299-234 2002/09/30 8 OS/390 Version 2
5647-A01 2000/02/29 299-234 2000/03/31 200-030 2003/03/31 9 OS/390 Version 2
5647-A01 2000/05/16 2000/09/29 200-145 2004/09/30 10 OS/390 Version 2
5694-A01 2000/10/03 200-352 2001/03/30 2004/03/31 1 z/OS Version 1
5694-A01 2001/09/11 2001/10/26 2004/10/31 2 z/OS Version 1
5694-A01 2002/02/19 2002/03/29 2005/03/31 3 z/OS Version 1
5694-A01 2002/08/13 2002/09/27 2007/03/31 4 z/OS Version 1
5694-A01 2004/02/10 2004/03/26 2007/03/31 5 z/OS Version 1
5694-A01 2004/08/10 2004/09/24 2007/09/30 6 z/OS Version 1
5694-A01 2005/07/27 2005/09/30 2008/09/30 7 z/OS Version 1
5694-A01 2006/08/08 2006/09/29 299-234 2009/09/30 8 z/OS Version 1
5694-A01 2007/08/08 299-234 2007/09/28 2010/09/30 9 z/OS Version 1
5694-A01 2008/08/05 2008/09/26 2011/09 10 z/OS Version 1
5694-A01 2009/08/18 209-242 2009/09/25 2012/09 11 z/OS Version 1
5694-A01 2000-02 12 z/OS Version 1

Notes

  1. ^ VMS was unrelated to the VMS system for the DEC VAX
  2. ^ IBM eventually provided interactive facilities for OS/360, e.g., CRJE, ITF, TSO.
  3. ^ But not MFT II
  4. ^ IBM later added the ability to use VTAM for TSO, but only in MVS.
  5. ^ But not IDAL
  6. ^ OS/360 M65MP and TSS/360 supported SMP

References

  1. ^ IBM (1965), IBM Operating System/360 Concepts and Facilities, C28-6535-0, http://www.bitsavers.org/pdf/ibm/360/os/R01-08/C28-6535-0_OS360_Concepts_and_Facilities_1965.pdf. 
  2. ^ a b c IBM (1972) (PDF). OS/360 Introduction. IBM Systems Reference Library. GC28-6534-3. http://bitsavers.vt100.net/pdf/ibm/360/GC28-6534-3_OS360introJan72.pdf. Retrieved 2007. 
  3. ^ a b c d e f g Auslander, M. A.; Jaffe, J. F. (1973). "Functional structure of IBM virtual storage operating systems Part I: Influences of dynamic address translation on operating system technology" (PDF). IBM Systems Journal (IBM) 4. http://www.research.ibm.com/journal/sj/124/ibmsj1204D.pdf 
  4. ^ a b Johnston (April 1, 2005). "VSE: A Look at the Past 40 Years". z/Journal (Thomas Communications, Inc.) (April/May 2005). http://www.zjournal.com/index.cfm?section=article&aid=293. 
  5. ^ Chuck Boyer, The 360 Revolution
  6. ^ Introduction, op. cit., page 50
  7. ^ http://www.slac.stanford.edu/cgi-wrap/getdoc/slac-pub-2782.pdf
  8. ^ The midseventies SHARE survey by an IBM user group
  9. ^ IBM, BSL Language Specifications, Z28-6642-0, http://bitsavers.org/pdf/ibm/360/bsl/Z28-6642-0_BSL_langSpec.pdf 
  10. ^ The IBM 360/67 and CP/CMS
  11. ^ IBM (October 1966), IBM System/360 Operating System Multiprogramming With a Fixed Number of Tasks (MFT) Concepts and Considerations, First Edition, GC27-6926-0, http://www.bitsavers.org/pdf/ibm/360/os/R13_Sep67/C27-6926-0_MFT_Concepts_Sep67.pdf. 
  12. ^ IBM (October 1967), Planning for Multiprogramming With a Fixed Number of Tasks Version II (MFT II), First Edition, C27-6939-0, http://www.bitsavers.org/pdf/ibm/360/os/C27-6939-0_Planning_for_MFT_II_Oct67.pdf. 
  13. ^ Ray Saunders, "MVS... And Before OS/360 ?"
  14. ^ IBM (March, 1972), IBM System/3S0 Operating System MVT Guide OS Release 21, Fifth Edition, GC28-6720-4, http://www.bitsavers.org/pdf/ibm/360/os/mvt/GC28-6720-4_MVT_Guide_R21_Mar72.pdf. 
  15. ^ IBM (September 1968), "Appendix A. Multiprocessing System", IBM System/360 Model 65 Punctional Characteristics, Fourth Edition, pp. 30–34, A22-6884-3, http://bitsavers.org/pdf/ibm/360/funcChar/A22-6884-3_360-65_funcChar.pdf. 
  16. ^ "System/370 Announcement". IBM. June 30, 1970. http://www-03.ibm.com/ibm/history/exhibits/mainframe/mainframe_PR370.html. 
  17. ^ "DPD chronology (1970–1974)". IBM. http://www-03.ibm.com/ibm/history/exhibits/dpd50/dpd50_chronology4.html.  DPD = Data Processing Division, which was responsible for IBM's medium and large systems.
  18. ^ Pugh, E.W., Johnson, L.R. and Palmer, J.H. (1991). IBM's 360 and Early 370 Systems. MIT Press. ISBN 0262161230. http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=8159. 
  19. ^ IBM (July, 1972), Guide to PL/S Generated Listings, First Edition, GC28-6786-0. 
  20. ^ IBM (May, 1974), Guide to PL/S II, First Edition, GC28-6794-0, http://bitsavers.org/pdf/ibm/360/pls/GC28-6794-0_PLSIIguideMay74.pdf. 
  21. ^ 3033 Technical press release
  22. ^ Implementing MVS workload management
  23. ^ Job Entry Subsystem 3 (JES3) Automation
  24. ^ VSAM Demystified
  25. ^ a b VSAM Tutorial
  26. ^ ISAM / VSAM Interface
  27. ^ 3033 Press announcement

Further reading

Manuals

Books

References in popular culture

External links